namespace FineCollection.Intf
{
    /// <summary>
    /// A list (write enabled).
    /// </summary>
    /// <typeparam name="T">type of an item.</typeparam>
    public interface WSet<T> : RSet<T>, WCollection<T>
    {
        /// <summary>
        /// Includes the specified item to the set.
        /// If such item already exists in the set - does nothing.
        /// </summary>
        /// <param name="item">item to include (not null).</param>
        void Include(T item);


        /// <summary>
        /// Removes the specified item from the set.
        /// If the set doesn't contain such item, do nothing.
        /// </summary>
        /// <param name="item">item to exclude (not null).</param>
        void Exclude(T item);

    }
}